Hardware Synthesis Using SAFL and Application to Processor Design
نویسندگان
چکیده
We survey the work done so far in the FLaSH project (Functional Languages for Synthesising Hardware) in which the core ideas are (i) using a functional language SAFL to describe hardware computation; (ii) transforming SAFL programs using various meaning-preserving transformations to choose the area-time position (e.g. by resource duplication/sharing, specialisation, pipelining); and (iii) compiling the resultant program in a resource-aware manner (keeping the gross structure of the resulting program by a 1–1 mapping of function definitions to functional units while exploiting ease-of-analysis properties of SAFL to select an efficient mapping) into hierarchical RTL Verilog. After this survey we consider how SAFL allows some of the design space concerning pipelining and superscalar techniques to be explored for a simple processor in the MIPS style. We also explore how ideas from partial evaluation (static and run-time data) can be used to unify the disparate approaches in Hydra/Lava/Hawk and SAFL and to allow processor specialisation.
منابع مشابه
A Higher-Level Language for Hardware Synthesis
We describe SAFL+: a call-by-value, parallel language in the style of ML which combines imperative, concurrent and functional programming. Synchronous channels allow communication between parallel threads and π-calculus style channel passing is provided. SAFL+ is designed for hardware description and synthesis; a silicon compiler, translating SAFL+ into RTL-Verilog, has been implemented. By par...
متن کاملModified 32-Bit Shift-Add Multiplier Design for Low Power Application
Multiplication is a basic operation in any signal processing application. Multiplication is the most important one among the four arithmetic operations like addition, subtraction, and division. Multipliers are usually hardware intensive, and the main parameters of concern are high speed, low cost, and less VLSI area. The propagation time and power consumption in the multiplier are always high. ...
متن کاملHardware/Software Co-Design Using Functional Languages
In previous work we have developed and prototyped a silion ompiler whi h translates a fun tional language (SAFL) into hardware. The te hniques we use require the restri tion (stati allo atability) that all re ursive alls are in a tail ontext. Here we extend this work, translating a fun tional language with general re ursion by mapping some fun tions dire tly to hardware and others to instru tio...
متن کاملA Case Study: Synthesis and Exploration of Instruction Set Design for Application-Specific Symbolic Computing
The design of computer instruction sets has been mostly considered as being a manual process, due to complications between hardware and software, and the lack of suitable design tools. The manual process limits understanding of the hardware/ software interface and tradeoffs. Motivated by this limitation, the design automation system ASIA (Automatic Synthesis for Instruction-set Architecture) wa...
متن کاملA Statically Allocated Parallel Functional Language
We describe SAFL, a call-by-value first-order functional language which is syntactically restricted so that storage may be statically allocated to fixed locations. Evaluation of independent sub-expressions happens in parallel—we use locking techniques to protect shared-use function definitions (i.e. to prevent unrestricted parallel accesses to their storage locations for argument and return val...
متن کامل